#!/bin/bash
# 一键远程连接并端口转发，自动输入密码

HOST="region-42.seetacloud.com"
PORT="36278"
USER="root"
PASSWORD="zkj/unCKE8EG"
LOCAL_PORT="15432"
REMOTE_PORT="5432"

# 检查 sshpass 是否安装
if ! command -v sshpass &> /dev/null; then
    echo "请先安装 sshpass 工具：sudo apt-get install sshpass 或 brew install hudochenkov/sshpass/sshpass"
    exit 1
fi

# 使用 screen 后台运行 SSH 隧道，避免 SSH 断开导致端口转发中断
SESSION_NAME="db_tunnel"

# 检查 screen 是否安装
if ! command -v screen &> /dev/null; then
    echo "请先安装 screen 工具：sudo apt-get install screen 或 brew install screen"
    exit 1
fi


# 检查并关闭已存在的同名 screen 会话（确保每次都能重新连接）
if screen -list | grep -q "$SESSION_NAME"; then
    echo "检测到已有 $SESSION_NAME 会话，正在关闭..."
    screen -S $SESSION_NAME -X quit
    sleep 1
fi

# 启动 screen 会话并在后台运行 SSH 隧道
screen -dmS $SESSION_NAME sshpass -p "$PASSWORD" ssh -p $PORT -L $LOCAL_PORT:localhost:$REMOTE_PORT $USER@$HOST

echo "SSH 隧道已在 screen($SESSION_NAME) 后台运行。可用 screen -r $SESSION_NAME 查看。"
